package com.uzai.console.service.ks;

import com.uzai.console.dto.ks.ksorder.KsOrderDownLoadDto;
import com.uzai.console.entity.KsOrder;

import java.util.List;

/**
 * @Auther: liuqi
 * @Date: 2021/08/27 11:23
 * @Description:
 */
public interface KsOrderSyncService {

    /**
     * 手动下载所有单个联盟订单
     *
     * @param ksOrderDownLoadDto
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void downloadOrder(KsOrderDownLoadDto ksOrderDownLoadDto, Long ksTokenId);

    /**
     * 手动下载所有单个联盟订单
     *
     * @param ksOrderDownLoadDto
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void downloadOrderListSync(KsOrderDownLoadDto ksOrderDownLoadDto);

    /**
     * 远程调用订单库API，手动下载订单
     *
     * @param ksOrder
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrder(KsOrder ksOrder);

    /**
     * 远程调用订单库API，更新7天前未收货订单
     *
     * @param merId
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderUnReceivedListSync(Long merId);

    /**
     * 修改快手未收货订单为已结算(只改订单状态)
     *
     * @param merId
     * @param day
     * @param status 订单修改之后的状态（2-失效；1-结算）
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void uploadKsOrderSettingSync(Long merId, int day, int status, List<Integer> sourceStatus);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     *
     * @param merId
     * @param day
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderUnReceivedListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前订单-已冻结
     *
     * @param merId
     * @param day
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderFreezedListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderUnReceivedListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderUnReceivedListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前订单-已冻结
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderFreezedListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前已冻结订单
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderFreezedListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前未收货订单
     *
     * @param merId
     * @param day
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderRefundingListSync(Long merId, int day);

    /**
     * 远程调用订单库API，更新day天前订单-维权中
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderRefundingListSync(Long merId, Integer startTime, Integer endTime, Long userId);

    /**
     * 远程调用订单库API，更新day天前维权中订单
     *
     * @param merId
     * @param startTime
     * @return null
     * @author liuqi
     * @date 2021/8/13 11:38
     */
    void updateKsOrderRefundingListSync_settle(Long merId, Integer startTime, Integer endTime, Long userId);


}
